package com.custom.readerviewpager.View;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.viewpager.widget.ViewPager;

/**
 * @description：水平切换 上下切换
 * @Author MRyan
 * @Date 2020/3/20 14:53
 * @Version 1.0
 */
public class CustomReaderViewPager extends ViewPager {
    public CustomReaderViewPager(Context context) {
        this(context, null);
    }

    public CustomReaderViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        setReadEffect();
    }


    @SuppressLint("ClickableViewAccessibility")
    private void setReadEffect() {
        setPageTransformer(true, new PageTransformer() {//reverseDrawingOrder 返回True前面的视图可以遮住后面的视图
            private float MIN_SCALE = 0.5f;//初始

            @Override
            public void transformPage(View page, float position) {
                Log.e("position",page.toString()+position+"");
                int pageWidth = page.getWidth();
                if (position <= 0) { //不缩放不移动  左滑时当前的View position=（0->-1] ||右滑时前一个View position=（0->-1]
                    page.setTranslationX(0);
                    page.setScaleX(1);
                    page.setScaleY(1);
                } else if (position <= 1) { // (0,1]  左滑时后一个View position=[1->0） ||右滑时当前View position=（0->1]
                    float SCALE = 0.5f - position / 2; //左滑时SCALE从0变为0.5 右滑时从0.5变为0
                    page.setScaleX(MIN_SCALE + SCALE);
                    page.setScaleY(MIN_SCALE + SCALE);
                    page.setAlpha(MIN_SCALE + SCALE);
                    page.setTranslationX(pageWidth *-position); //左移
                  /*  Log.e("pageWidth",pageWidth *-position+"");*/
                } else {//右滑时后一个View position=[1->+无穷） || 左滑时前一个View position=（-无穷->-1]
                    page.setTranslationX(pageWidth);//移出右端到屏幕外侧
                }
            }
        });
    }
}